package lesson11;

import java.util.HashMap;
import java.util.Properties;

public class Test05 {
    public static void main(String[] args) {
        // Hashtable、HashMap区别：
        // Hashtable是JDK1.0的集合类，线程安全，效率略低于HashMap，不允许空键和空值
        // HashMap是JDK1.2的集合类，线程不安全，效率略高于HashMap，允许空键和空值
        // Hashtable和HashMap都不能自定义顺序，它们的键会按照hash算法计算过后排列

        // HashMap和TreeMap区别：
        // HashMap不能自定义排序，键按照hash算法计算过后排列
        // TreeMap可以对键进行自定义排序

        // 最常用的Map接口下的实现类是HashMap
        HashMap<String,Object> hashMap = new HashMap();
        hashMap.put("name","张三");
        hashMap.put("gender","男");
        hashMap.put("age",20);
        hashMap.put("phone","13888888888");
        hashMap.put("gender","女");

        System.out.println(hashMap.get("name"));
        // 判断Map中是否包含指定的键
        System.out.println(hashMap.containsKey("phone"));
        // 判断Map中是否包含指定的值
        System.out.println(hashMap.containsValue(20));
        // 获取Map中所有的键，通过循环键找到对应的值
        for(String key : hashMap.keySet()){
            System.out.println(key + " : " + hashMap.get(key));
        }
        // 获取Map中所有的值并循环所有的值
        for(Object value : hashMap.values()){
            System.out.println(value);
        }

        Properties properties = new Properties();
        properties.setProperty("name","张飞");
        properties.setProperty("age","20");
        System.out.println(properties.getProperty("name"));
        System.out.println(properties.getProperty("age"));
        for(Object key: properties.keySet()){
            System.out.println(key + ":" + properties.getProperty(key.toString()));
        }
    }
}
